Raspberry Pi /RP2040 /I2C0 /IC_TX_ABRT_SOURCE

Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text

Interpret as IC_TX_ABRT_SOURCE

31 2827 2423 2019 1615 1211 87 43 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (INACTIVE)ABRT_7B_ADDR_NOACK 0 (INACTIVE)ABRT_10ADDR1_NOACK 0 (INACTIVE)ABRT_10ADDR2_NOACK 0 (ABRT_TXDATA_NOACK_VOID)ABRT_TXDATA_NOACK 0 (ABRT_GCALL_NOACK_VOID)ABRT_GCALL_NOACK 0 (ABRT_GCALL_READ_VOID)ABRT_GCALL_READ 0 (ABRT_HS_ACK_VOID)ABRT_HS_ACKDET 0 (ABRT_SBYTE_ACKDET_VOID)ABRT_SBYTE_ACKDET 0 (ABRT_HS_NORSTRT_VOID)ABRT_HS_NORSTRT 0 (ABRT_SBYTE_NORSTRT_VOID)ABRT_SBYTE_NORSTRT 0 (ABRT_10B_RD_VOID)ABRT_10B_RD_NORSTRT 0 (ABRT_MASTER_DIS_VOID)ABRT_MASTER_DIS 0 (ABRT_LOST_VOID)ARB_LOST 0 (ABRT_SLVFLUSH_TXFIFO_VOID)ABRT_SLVFLUSH_TXFIFO 0 (ABRT_SLV_ARBLOST_VOID)ABRT_SLV_ARBLOST 0 (ABRT_SLVRD_INTX_VOID)ABRT_SLVRD_INTX 0 (ABRT_USER_ABRT_VOID)ABRT_USER_ABRT 0TX_FLUSH_CNT

ABRT_SLVFLUSH_TXFIFO=ABRT_SLVFLUSH_TXFIFO_VOID, ABRT_USER_ABRT=ABRT_USER_ABRT_VOID, ABRT_SLV_ARBLOST=ABRT_SLV_ARBLOST_VOID, ABRT_HS_ACKDET=ABRT_HS_ACK_VOID, ABRT_10B_RD_NORSTRT=ABRT_10B_RD_VOID, ABRT_SBYTE_NORSTRT=ABRT_SBYTE_NORSTRT_VOID, ABRT_MASTER_DIS=ABRT_MASTER_DIS_VOID, ABRT_SLVRD_INTX=ABRT_SLVRD_INTX_VOID, ABRT_GCALL_NOACK=ABRT_GCALL_NOACK_VOID, ABRT_7B_ADDR_NOACK=INACTIVE, ABRT_10ADDR2_NOACK=INACTIVE, ABRT_SBYTE_ACKDET=ABRT_SBYTE_ACKDET_VOID, ABRT_TXDATA_NOACK=ABRT_TXDATA_NOACK_VOID, ABRT_HS_NORSTRT=ABRT_HS_NORSTRT_VOID, ARB_LOST=ABRT_LOST_VOID, ABRT_GCALL_READ=ABRT_GCALL_READ_VOID, ABRT_10ADDR1_NOACK=INACTIVE

Description

I2C Transmit Abort Source Register

This register has 32 bits that indicate the source of the TX_ABRT bit. Except for Bit 9, this register is cleared whenever the IC_CLR_TX_ABRT register or the IC_CLR_INTR register is read. To clear Bit 9, the source of the ABRT_SBYTE_NORSTRT must be fixed first; RESTART must be enabled (IC_CON[5]=1), the SPECIAL bit must be cleared (IC_TAR[11]), or the GC_OR_START bit must be cleared (IC_TAR[10]).

Once the source of the ABRT_SBYTE_NORSTRT is fixed, then this bit can be cleared in the same manner as other bits in this register. If the source of the ABRT_SBYTE_NORSTRT is not fixed before attempting to clear this bit, Bit 9 clears for one cycle and is then re-asserted.

Fields

ABRT_7B_ADDR_NOACK

This field indicates that the Master is in 7-bit addressing mode and the address sent was not acknowledged by any slave.

Reset value: 0x0

Role of DW_apb_i2c: Master-Transmitter or Master-Receiver

0 (INACTIVE): This abort is not generated

1 (ACTIVE): This abort is generated because of NOACK for 7-bit address

ABRT_10ADDR1_NOACK

This field indicates that the Master is in 10-bit address mode and the first 10-bit address byte was not acknowledged by any slave.

Reset value: 0x0

Role of DW_apb_i2c: Master-Transmitter or Master-Receiver

0 (INACTIVE): This abort is not generated

1 (ACTIVE): Byte 1 of 10Bit Address not ACKed by any slave

ABRT_10ADDR2_NOACK

This field indicates that the Master is in 10-bit address mode and that the second address byte of the 10-bit address was not acknowledged by any slave.

Reset value: 0x0

Role of DW_apb_i2c: Master-Transmitter or Master-Receiver

0 (INACTIVE): This abort is not generated

1 (ACTIVE): Byte 2 of 10Bit Address not ACKed by any slave

ABRT_TXDATA_NOACK

This field indicates the master-mode only bit. When the master receives an acknowledgement for the address, but when it sends data byte(s) following the address, it did not receive an acknowledge from the remote slave(s).

Reset value: 0x0

Role of DW_apb_i2c: Master-Transmitter

0 (ABRT_TXDATA_NOACK_VOID): Transmitted data non-ACKed by addressed slave-scenario not present

1 (ABRT_TXDATA_NOACK_GENERATED): Transmitted data not ACKed by addressed slave

ABRT_GCALL_NOACK

This field indicates that DW_apb_i2c in master mode has sent a General Call and no slave on the bus acknowledged the General Call.

Reset value: 0x0

Role of DW_apb_i2c: Master-Transmitter

0 (ABRT_GCALL_NOACK_VOID): GCALL not ACKed by any slave-scenario not present

1 (ABRT_GCALL_NOACK_GENERATED): GCALL not ACKed by any slave

ABRT_GCALL_READ

This field indicates that DW_apb_i2c in the master mode has sent a General Call but the user programmed the byte following the General Call to be a read from the bus (IC_DATA_CMD[9] is set to 1).

Reset value: 0x0

Role of DW_apb_i2c: Master-Transmitter

0 (ABRT_GCALL_READ_VOID): GCALL is followed by read from bus-scenario not present

1 (ABRT_GCALL_READ_GENERATED): GCALL is followed by read from bus

ABRT_HS_ACKDET

This field indicates that the Master is in High Speed mode and the High Speed Master code was acknowledged (wrong behavior).

Reset value: 0x0

Role of DW_apb_i2c: Master

0 (ABRT_HS_ACK_VOID): HS Master code ACKed in HS Mode- scenario not present

1 (ABRT_HS_ACK_GENERATED): HS Master code ACKed in HS Mode

ABRT_SBYTE_ACKDET

This field indicates that the Master has sent a START Byte and the START Byte was acknowledged (wrong behavior).

Reset value: 0x0

Role of DW_apb_i2c: Master

0 (ABRT_SBYTE_ACKDET_VOID): ACK detected for START byte- scenario not present

1 (ABRT_SBYTE_ACKDET_GENERATED): ACK detected for START byte

ABRT_HS_NORSTRT

This field indicates that the restart is disabled (IC_RESTART_EN bit (IC_CON[5]) =0) and the user is trying to use the master to transfer data in High Speed mode.

Reset value: 0x0

Role of DW_apb_i2c: Master-Transmitter or Master-Receiver

0 (ABRT_HS_NORSTRT_VOID): User trying to switch Master to HS mode when RESTART disabled- scenario not present

1 (ABRT_HS_NORSTRT_GENERATED): User trying to switch Master to HS mode when RESTART disabled

ABRT_SBYTE_NORSTRT

To clear Bit 9, the source of the ABRT_SBYTE_NORSTRT must be fixed first; restart must be enabled (IC_CON[5]=1), the SPECIAL bit must be cleared (IC_TAR[11]), or the GC_OR_START bit must be cleared (IC_TAR[10]). Once the source of the ABRT_SBYTE_NORSTRT is fixed, then this bit can be cleared in the same manner as other bits in this register. If the source of the ABRT_SBYTE_NORSTRT is not fixed before attempting to clear this bit, bit 9 clears for one cycle and then gets reasserted. When this field is set to 1, the restart is disabled (IC_RESTART_EN bit (IC_CON[5]) =0) and the user is trying to send a START Byte.

Reset value: 0x0

Role of DW_apb_i2c: Master

0 (ABRT_SBYTE_NORSTRT_VOID): User trying to send START byte when RESTART disabled- scenario not present

1 (ABRT_SBYTE_NORSTRT_GENERATED): User trying to send START byte when RESTART disabled

ABRT_10B_RD_NORSTRT

This field indicates that the restart is disabled (IC_RESTART_EN bit (IC_CON[5]) =0) and the master sends a read command in 10-bit addressing mode.

Reset value: 0x0

Role of DW_apb_i2c: Master-Receiver

0 (ABRT_10B_RD_VOID): Master not trying to read in 10Bit addressing mode when RESTART disabled

1 (ABRT_10B_RD_GENERATED): Master trying to read in 10Bit addressing mode when RESTART disabled

ABRT_MASTER_DIS

This field indicates that the User tries to initiate a Master operation with the Master mode disabled.

Reset value: 0x0

Role of DW_apb_i2c: Master-Transmitter or Master-Receiver

0 (ABRT_MASTER_DIS_VOID): User initiating master operation when MASTER disabled- scenario not present

1 (ABRT_MASTER_DIS_GENERATED): User initiating master operation when MASTER disabled

ARB_LOST

This field specifies that the Master has lost arbitration, or if IC_TX_ABRT_SOURCE[14] is also set, then the slave transmitter has lost arbitration.

Reset value: 0x0

Role of DW_apb_i2c: Master-Transmitter or Slave-Transmitter

0 (ABRT_LOST_VOID): Master or Slave-Transmitter lost arbitration- scenario not present

1 (ABRT_LOST_GENERATED): Master or Slave-Transmitter lost arbitration

ABRT_SLVFLUSH_TXFIFO

This field specifies that the Slave has received a read command and some data exists in the TX FIFO, so the slave issues a TX_ABRT interrupt to flush old data in TX FIFO.

Reset value: 0x0

Role of DW_apb_i2c: Slave-Transmitter

0 (ABRT_SLVFLUSH_TXFIFO_VOID): Slave flushes existing data in TX-FIFO upon getting read command- scenario not present

1 (ABRT_SLVFLUSH_TXFIFO_GENERATED): Slave flushes existing data in TX-FIFO upon getting read command

ABRT_SLV_ARBLOST

This field indicates that a Slave has lost the bus while transmitting data to a remote master. IC_TX_ABRT_SOURCE[12] is set at the same time. Note: Even though the slave never ‘owns’ the bus, something could go wrong on the bus. This is a fail safe check. For instance, during a data transmission at the low-to-high transition of SCL, if what is on the data bus is not what is supposed to be transmitted, then DW_apb_i2c no longer own the bus.

Reset value: 0x0

Role of DW_apb_i2c: Slave-Transmitter

0 (ABRT_SLV_ARBLOST_VOID): Slave lost arbitration to remote master- scenario not present

1 (ABRT_SLV_ARBLOST_GENERATED): Slave lost arbitration to remote master

ABRT_SLVRD_INTX

1: When the processor side responds to a slave mode request for data to be transmitted to a remote master and user writes a 1 in CMD (bit 8) of IC_DATA_CMD register.

Reset value: 0x0

Role of DW_apb_i2c: Slave-Transmitter

0 (ABRT_SLVRD_INTX_VOID): Slave trying to transmit to remote master in read mode- scenario not present

1 (ABRT_SLVRD_INTX_GENERATED): Slave trying to transmit to remote master in read mode

ABRT_USER_ABRT

This is a master-mode-only bit. Master has detected the transfer abort (IC_ENABLE[1])

Reset value: 0x0

Role of DW_apb_i2c: Master-Transmitter

0 (ABRT_USER_ABRT_VOID): Transfer abort detected by master- scenario not present

1 (ABRT_USER_ABRT_GENERATED): Transfer abort detected by master

TX_FLUSH_CNT

This field indicates the number of Tx FIFO Data Commands which are flushed due to TX_ABRT interrupt. It is cleared whenever I2C is disabled.

Reset value: 0x0

Role of DW_apb_i2c: Master-Transmitter or Slave-Transmitter

Links

() ()